package com.sys.users.pojo;

import java.util.Date;
import java.util.Map;
import java.util.TreeMap;

import com.sys.common.pojo.BasePojo;
import com.sys.goods.pojo.ABlindbox;

public class ACart extends BasePojo<ACart>
{
	private int cartDetailNumber;
	private int userId;
	private int blindBoxId;
	private int purchaseQuantity;
	private byte status;
	private Date createTime;
	private Date updateTime;
	private Date pubTime;

	private String statusStr;
	
	/* 关联关系 */
	private ABlindbox blindbox ; 

	/* 存储所有状态的容器 */
	private Map<String, String> enumsMap = new TreeMap<String, String>();

	/**
	 * 获取此表相关的所有枚举值
	 * 
	 * @return 键为枚举的变量名+枚举的值; 值为枚举的名字 如:key:STATUS_ENABLE-1,值:启用
	 */
	public Map<String, String> getEnumsMap()
	{
		// 根据状态值获取字符串描述
		ACartEnum[] enums = ACartEnum.values();
		for (int i = 0; i < enums.length; i++)
		{
			ACartEnum enumTemp = enums[i];
			String key = enumTemp.toString();
			enumsMap.put(key + "-" + enumTemp.getStatus() + "", enumTemp.getName());
		}
		return enumsMap;
	}

	/**
	 * 获取状态的字符串描述
	 * 
	 * @return 此状态对应的字符串描述
	 */
	public String getStatusStr()
	{
		// 根据状态值获取字符串描述
		ACartEnum[] enums = ACartEnum.values();
		for (int i = 0; i < enums.length; i++)
		{
			ACartEnum enumTemp = enums[i];
			if (enumTemp.toString().startsWith("STATUS_"))
			{
				// 表示是状态的标识
				if (enumTemp.getStatus() == this.getStatus())
				{
					this.statusStr = enumTemp.getName();
					break;
				}
			}
		}
		return statusStr;
	}

	public int getCartDetailNumber()
	{
		return cartDetailNumber;
	}

	public void setCartDetailNumber(int cartDetailNumber)
	{
		this.cartDetailNumber = cartDetailNumber;
	}

	public int getUserId()
	{
		return userId;
	}

	public void setUserId(int userId)
	{
		this.userId = userId;
	}

	public int getBlindBoxId()
	{
		return blindBoxId;
	}

	public void setBlindBoxId(int blindBoxId)
	{
		this.blindBoxId = blindBoxId;
	}

	public int getPurchaseQuantity()
	{
		return purchaseQuantity;
	}

	public void setPurchaseQuantity(int purchaseQuantity)
	{
		this.purchaseQuantity = purchaseQuantity;
	}

	public byte getStatus()
	{
		return status;
	}

	public void setStatus(byte status)
	{
		this.status = status;
	}

	public Date getCreateTime()
	{
		return createTime;
	}

	public void setCreateTime(Date createTime)
	{
		this.createTime = createTime;
	}

	public Date getUpdateTime()
	{
		return updateTime;
	}

	public void setUpdateTime(Date updateTime)
	{
		this.updateTime = updateTime;
	}

	public Date getPubTime()
	{
		return pubTime;
	}

	public void setPubTime(Date pubTime)
	{
		this.pubTime = pubTime;
	}

	public ABlindbox getBlindbox() {
		return blindbox;
	}

	public void setBlindbox(ABlindbox blindbox) {
		this.blindbox = blindbox;
	}

}
